package digitrencer;

//commented and corrected by Gergő
/**
 * A VAGY kaput megvalósító osztály.
 * @author taplonaplo
 */
public class Or_gate extends Gate {

        /**
         * Or_gate osztály konstruktora.
         * Meghívja a Gate konstruktorát, majd
         * ellenőrzi, hogy a bemeneti vezetékek száma legalább 2-e.
         * Amennyiben nem, hibát dob, mivel az Or-gate osztály tagjainak nem
         * lehet kevesebb bemenete, mint 2.
         * @param inputs    Bemeneti vezetékek
         * @param outputs   Kimeneti vezetékek
         * @throws IllegalArgumentException Amennyiben kevesebb, mint két
         * bemeneti vezetéket adtunk meg.
         */
        Or_gate(Wire[] inputs, Wire[] outputs) throws IllegalArgumentException{
            super(inputs,outputs);
            if (inputs.length < 2)
                throw new IllegalArgumentException("An OR gate muse have at least 2 input wires and may not have more than 1 output wire.");
        }

        /**
         * Az Or_gate osztály futási metódusa. A kimenetek értékeit beállítja a hozzá
         * csatlakozó vezetékek végén lévő értékek VAGY kapcsolatára.
         */
    @Override
	public void run() {
            for(Wire w : in ){
                if (w.getEnd() == true){
                    out[0].setStart(true);
                    return;
                }
            }
            out[0].setStart(false);
	}
}